package com.hspedu.newData.dmsxl.链表.删除;

import com.hspedu.newData.dmsxl.ds.ListNode;
import org.junit.Test;

/**
 * @Author: yh
 * @description: 
 * @CreateTime: 2025-04-22 
 * @Version: 1.0
 */


// todo
public class LC203移除链表元素 {

    // 迭代法设置虚拟头结点的，不设置虚拟头结点的,迭代法的判断条件
    // 递归法实现
    public ListNode removeElements(ListNode head, int val) {

        while(head != null && head.val== val){
            head = head.next;
        }

        ListNode cur = head;
        while (cur != null && cur.next != null){
            if(cur.next.val == val){
                cur.next = cur.next.next;
            }else {
                cur = cur.next;
            }
        }

        return head;
    }


    @Test
    public void test() {
        // 测试代码
        ListNode l1 = new ListNode(6, null);
        ListNode l2 = new ListNode(5, l1);
        ListNode l3 = new ListNode(4, l2);
        ListNode l4 = new ListNode(6, l3);
        ListNode l5 = new ListNode(2, l4);
        ListNode l6 = new ListNode(1, l5);

        removeElements(l6,6);

        System.out.println("111");
    }
}
